package com.vdong.trade.trading.respository;


import com.vdong.trade.trading.entity.dto.param.AmountParamDTO;
import com.vdong.trade.trading.entity.dto.param.OrderTradingPramDTO;
import com.vdong.trade.trading.entity.mo.AmountDataMO;
import com.vdong.trade.trading.entity.mo.AmountMO;
import org.apache.ibatis.annotations.Mapper;

import java.math.BigDecimal;
import java.util.List;


/**
 * Description:AmountMO Dao接口
 *
 * @author <a href="mailto:zlb">zlb</a>
 * @Date Create on 2018-12-18 18:46:17
 * @since version1.0 Copyright 2018 QTZ All Rights Reserved.
 */
@Mapper
public interface AmountMORepository {

    /**
     * 将数据插入到数据库
     *
     * @param amount
     * @return 返回成功新增的个数
     */
    int insertAmount(AmountMO amount);

    /**
     * 根据ID删除数据
     *
     * @param id
     * @return 返回成功删除记录的个数
     */
    int deleteAmountById(Long id);

    /**
     * 根据ID修改数据
     *
     * @param id
     * @return 返回成功修改记录的个数
     */
    int updateAmountById(AmountMO amount);

    /**
     * 根据ID查询数据
     *
     * @param paramDTO
     * @return 返回成功查询记录
     */
    AmountMO selectAmountById(AmountParamDTO paramDTO);

    AmountMO selectAmountByEntity(AmountMO amountMO);

    /**
     * 根据条件查询数据
     *
     * @param amount
     * @return 返回查询的记录列表
     */
    List<AmountMO> selectAmountListByCond(AmountMO amount);

    /**
     * 根据条件查询数据的条数
     *
     * @param amount
     * @return 返回查询的记录条数
     */
    Integer selectAmountCntByCond(AmountMO amount);

    /**
     * 根据id或者userId修改数据
     *
     * @param amountDataMO
     * @return
     */
    int updateAmountByParam(AmountDataMO amountDataMO);

    /**
     * 增加可提现，减少未结算
     *
     * @return
     */
    int updateSettlementByParam(AmountMO amountMO);
}

